Skip to content

Казаков Андрей Лаб. 3 Группа 6513#85

Open
Gironape wants to merge 24 commits intoitsecd:mainfrom
Gironape:main
Open

Казаков Андрей Лаб. 3 Группа 6513#85
Gironape wants to merge 24 commits intoitsecd:mainfrom
Gironape:main

Conversation

@Gironape
Copy link
Copy Markdown

@Gironape Gironape commented Apr 3, 2026

ФИО: Казаков Андрей
Номер группы: 6513
Номер лабораторной: 3
Номер варианта: 43
Краткое описание предметной области: Сотрудник компании
Краткое описание добавленных фич: Добавлен SNS брокер + MinIO хранилище + тесты

Стыдно должно быть, но пока рано
Не судите строго, я pycharman
С каждой строчкой я все дальше от бога
Сделал исправления
Пожалуйста, не ругайтесь на C#-инвалида (на меня)
Добавил недостающее summary
Надеюсь, я делаю что-то похожее на правду
Скорее всего где-то накосячил, не ругайтесь на меня
Убрал CORS в API, исправил недочет в AppHost.cs и обновил пакеты до версии 9.5.0
Потихоньку делаю
Написал всякой фигни, понял, что не работает, теперь переделываю
Вроде, все работает, осталось немного доделать
Посмотрел не свой вариант и увидел, что у меня Minio, а не Localstack
Вроде, правильно должно быть
Еще раз прошу не осуждать, я пытаюсь развиваться в этом предмете, правда...
@github-actions github-actions bot added In progress Код в процессе проверки Lab 3 Лабораторная №3. Интеграционное тестирование labels Apr 3, 2026
@github-actions github-actions bot requested a review from alxmcs April 3, 2026 21:25
<ItemGroup>
<PackageReference Include="Aspire.StackExchange.Redis.DistributedCaching" Version="9.5.0" />
<PackageReference Include="Bogus" Version="35.6.5" />
<PackageReference Include="MassTransit.AmazonSQS" Version="8.3.0" />
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

С одной стороны, очень радостно, что ты знаешь о масс транзит (хотя, может, в лекциях упоминания были на 4 курсе)
С другой стороны, я бы хотел, чтобы студенты на практике немного попили говна поковырялись именно с нативными клиентскими библиотеками, а не с абстрагированной оберткой над всеми брокерами на свете, где отправка сообщения в любой из них выглядит совершенно одинаково

Короче, это последний pr, в котором я пропущу масс транзит, в остальных - заставлю его выпиливать и заменять на конкретную клиентскую библиотеку.

Comment on lines +17 to +22
public EmployeeGeneratedConsumer(IStorageService storage, string bucketName, ILogger<EmployeeGeneratedConsumer> logger)
{
_storage = storage;
_bucketName = bucketName;
_logger = logger;
}
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Использовать праймари конструктор

Я, конечно, понимаю, что все нейронки почему-то обучены генерировать шарповый код где-то в районе 6 дотнета, но, наверное, в промпте сразу можно указать, чтобы код генерировался в соответствии с фичами 8/10 дотнета.
Подобные допотопные конструкции потеряли актуальность еще до того, как ты в вуз поступил, так что это сильно палится.

Comment on lines +11 to +18
private readonly IMinioClient _minioClient;
private readonly ILogger<MinioStorageService> _logger;

public MinioStorageService(IMinioClient minioClient, ILogger<MinioStorageService> logger)
{
_minioClient = minioClient;
_logger = logger;
}
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Аналогично

Comment on lines +57 to +60
catch
{
return false;
}
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Хотя бы залогируй в этом случае чего-нибудь, у тебя ведь даже логгер через di в этот класс притащен


<ItemGroup>
<PackageReference Include="MassTransit.AmazonSQS" Version="8.3.0" />
<PackageReference Include="Minio" Version="6.0.4" />
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

С этой библиотекой не получится подключить телеметрию минио в дашборд аспаер, тебе нужна вот эта

var app = builder.Build();

app.MapDefaultEndpoints();
app.MapGet("/health", () => "Healthy");
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Честно, я хз, зачем делать такие эндпоинты
Эндпоинт, который выдавал бы, к примеру, список файлов в объектном хранилище, как по мне, был бы полезнее

@@ -0,0 +1,70 @@
using Aspire.Hosting;
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Неиспользуемый юзинг

Comment on lines +37 to +42
x.UsingAmazonSqs((context, cfg) =>
{
cfg.Host(awsRegion, h =>
{
h.Config(new AmazonSQSConfig { ServiceURL = awsServiceUrl });
h.Config(new AmazonSimpleNotificationServiceConfig { ServiceURL = awsServiceUrl });
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Масс транзит можешь оставить (если он тебе поможет), но вот потребление сообщений будь добр переделать без использования sqs
Image

И не только потому, что такое требует задание, но и еще потому, что у тебя там творится бесовщина:

Image

Comment on lines +6 to +8
/// <summary>
/// �������������� ����� ��� �������� ������ ���� ��������.
/// </summary>
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Кодировка

_fileServiceClient = new HttpClient
{
BaseAddress = new Uri("https://localhost:7277")
};
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Суть качественных интеграционных тестов заключается в том, что для того, чтобы они успешно исполнились, мне не нужно предварительно заниматься запуском проектов вручную, чтобы убедиться в их работоспособности.

Image

Либо изучи на досуге, каким образом производить интеграционное тестирования при помощи aspire, либо дождись лекции на следующей неделе.
Текущий вид интеграционных тестов, очевидно, неприемлем

Пока не готово, но уже что-то
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

In progress Код в процессе проверки Lab 3 Лабораторная №3. Интеграционное тестирование

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants